home *** CD-ROM | disk | FTP | other *** search
- #include "datetime.h"
-
- /* roughly 100x faster than mktime() */
- datetime_sec datetime_untai(dt)
- struct datetime *dt;
- {
- int year;
- int day;
- int mon;
-
- year = dt->year + 1900;
-
- mon = dt->mon;
- if (mon >= 2) { mon -= 2; }
- else { mon += 10; --year; }
-
- day = (dt->mday - 1) * 10 + 5 + 306 * mon;
- day /= 10;
-
- if (day == 365) { year -= 3; day = 1460; }
- else { day += 365 * (year % 4); }
- year /= 4;
-
- day += 1461 * (year % 25);
- year /= 25;
-
- if (day == 36524) { year -= 3; day = 146096; }
- else { day += 36524 * (year % 4); }
- year /= 4;
-
- day += 146097 * (year - 5);
- day += 11017;
-
- return ((day * 24 + dt->hour) * 60 + dt->min) * 60 + dt->sec;
- }
-